iT邦幫忙

0

【Day 21】Dify Workflow 進階編排:整合 Web Search 聯網搜尋與自動補充行程資訊

  • 分享至 

  • xImage
  •  

在昨天的 Day 20 中,我們完成了「文字、語音、圖像」全方位多模態輸入的最後一塊拼圖。然而,在日常生活中,我們交代給 AI 的任務經常帶有模糊資訊或隱含需求——例如說出「下週去台南吃阿堂鹹粥」、「買展覽門票」或「準備參加某研討會」時,任務內容其實缺少了具體的店家地址、營業時間、展覽地點或交通資訊。

今天我們要將 Dify 的角色從單純的「LLM 文字解析器」升級為「Dify Advanced Workflow(進階工作流智能體)」!透過在 Dify 內部整合 Web Search(聯網搜尋工具,如 Serper / DuckDuckGo),讓 AI 在解析任務的同時自動聯網搜尋相關背景資訊,並將補全後的富文本(Rich Data)同步回傳給 n8n,寫入 Notion 看板與 Google Calendar!


為什麼需要升級為 Dify Advanced Workflow 聯網搜尋?

  1. 補全模糊資訊與實體細節:單純的大語言模型無法得知當下最新的營業時間或特定地點細節;導入聯網搜尋能即時抓取最新資料。
  2. 自動生成豐富的行程備忘(Event Description):寫入 Google Calendar 時,Description 不再只有單薄的優先級,還能自動附上地圖連結、推薦菜單或活動地點。
  3. 邏輯解耦(Decoupling):將「聯網判斷與資訊檢索」的重任交給 Dify 工作流處理,讓 n8n 繼續專注於資料庫與 API 之間的調度,維護架構的乾淨與高擴充性。

核心實作步驟說明

1. 在 Dify 建立 Advanced Workflow(進階工作流)

  • 開啟 Dify 主頁,新建一個 Workflow 類型的應用(而非單純的 Chatbot)。
  • 在畫布中新增以下關鍵節點:
  • Start 節點:接收來自 n8n 的 query(例如:「下週六中午去吃台南阿堂鹹粥」)。
  • LLM 意圖識別:判斷該任務是否需要補充背景資訊(如地址、電話、營業時間)。
  • Tool 節點 (Web Search):若需要,呼叫 Google Search / Serper 工具搜尋網頁資料。
  • LLM 資訊整合與 JSON 格式化:將搜尋結果與原始任務結合,輸出標準結構化 JSON。

2. 定義 Dify 輸出之 JSON 結構

  • 引導模型輸出包含聯網補充資訊的 JSON 物件:
{
  "task": "去吃台南阿堂鹹粥",
  "priority": "Medium",
  "time": "2026-10-24T12:00:00+08:00",
  "has_exact_time": true,
  "location": "台南市中西區府前路一段328號",
  "notes": "營業時間:06:00–13:00(週二公休)。推薦招牌:虱目魚鹹粥、蝦仁飯。"
}

3. 在 n8n 修改 Dify API 呼叫端點

  • 切換 Dify API 的呼叫方式:由原先的 /v1/chat-messages 改為 Workflow 專用的 /v1/workflows/run。
  • 在 n8n 的 HTTP Request 節點中更新 Payload:
{
  "inputs": {
    "query": "={{ $json.body.message }}"
  },
  "response_mode": "blocking",
  "user": "ironman-user"
}

4. 將富文本寫入 Google Calendar 與 Notion

  • Google Calendar 節點:

  • Location(地點):動態帶入 {{ $json.location }}。

  • Description(描述):動態帶入 {{ $json.notes }}。

  • Notion 節點:新增 Location 與 Notes 文字屬性並映射欄位。

今天我們成功賦予了 AI 待辦系統聯網搜尋與自動補充背景資訊的能力,讓每一筆行程卡片都充滿實用的資訊價值。明天「Day 22」我們將進一步整合「Gmail 郵件自動監聽與重要待辦抽取」,實現收到特定信件時自動提煉為看板任務!


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言